package homework.shiwu2;

import java.lang.reflect.Proxy;

public class Main {
    public static void main(String[] args) {
        // 创建目标对象
        UserService target = new UserServiceImpl();

        // 创建InvocationHandler
        TransactionHandler handler = new TransactionHandler(target);

        // 创建代理对象
        UserService proxy = (UserService) Proxy.newProxyInstance(
                UserService.class.getClassLoader(),  // 类加载器
                new Class<?>[]{UserService.class},   // 代理实现的接口
                handler                              // 处理器
        );

        // 测试正常情况
        System.out.println("=== 测试正常情况 ===");
        proxy.createUser("john");

        System.out.println();

        // 测试异常情况
        System.out.println("=== 测试异常情况 ===");
        try {
            proxy.createUser("error_user");
        } catch (Exception e) {
            System.out.println("捕获异常: " + e.getMessage());
        }
    }
}
